package com.starhub.monitor.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * 监控统计数据DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MonitorStatsDto {
    
    /**
     * 今日总请求次数
     */
    private Long totalRequestsToday;
    
    /**
     * 智能体总数
     */
    private Long totalAgents;
    
    /**
     * 总用户数
     */
    private Long totalUsers;
    
    /**
     * API调用次数
     */
    private Long totalApiCalls;
    
    /**
     * 对话总数
     */
    private Long totalConversations;
    
    /**
     * 告警数量（状态为2的记录数量）
     */
    private Long totalAlerts;
    
    /**
     * 错误数量（状态为0的记录数量）
     */
    private Long totalErrors;
    
    /**
     * 正常数量（状态为1的记录数量）
     */
    private Long totalNormals;
    
    /**
     * 按时间段统计的请求数据
     * 包含每个时间段的正常数量（status=1）、错误数量（status=0）和告警数量（status=2）
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TimeStats {
        /**
         * 时间段标签
         */
        private String timeSlot;
        
        /**
         * 正常数量（status=1）
         */
        private Long successCount;
        
        /**
         * 错误数量（status=0）
         */
        private Long failureCount;
        
        /**
         * 告警数量（status=2）
         */
        private Long alertCount;
    }
    
    /**
     * 时间段统计数据
     */
    private List<TimeStats> timeStats;
} 